package com.gdufe.firesafe.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.gdufe.firesafe.model.dto.LoginDTO;
import com.gdufe.firesafe.model.dto.RegisterDTO;
import com.gdufe.firesafe.model.dto.ResetDTO;
import com.gdufe.firesafe.model.dto.UpdatePersonalInfoDTO;
import com.gdufe.firesafe.model.entity.UserEntity;
import com.gdufe.firesafe.utils.PageUtils;
import com.gdufe.firesafe.model.vo.LoginVO;

import java.util.Map;

/**
 * 用户表，用于登录注册，区分用户
 *
 * @author Liu
 * @email
 * @date 2024-03-26 17:30:27
 */
public interface UserService extends IService<UserEntity> {

    //分页查询
    PageUtils queryPage(Map<String, Object> params);

    //注册
    void register(RegisterDTO registerDTO);

    //登录
    LoginVO login(LoginDTO loginDTO);

    //根据角色查角色相关信息
    LoginVO getRoleInfo(UserEntity user);

    //获取当前登录用户个人信息，包括角色相关信息
    LoginVO getPersonalInfo(UserEntity user);

    //更新个人信息，包括角色相关信息
    void updatePersonalInfo(UpdatePersonalInfoDTO updateInfo, UserEntity currentUser);

    void resetPassword(ResetDTO resetDTO);
}

